﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ncqrs.Domain;

namespace Ncqrs.Bus.AzureServiceBus
{
    /// <summary>
    ///   An implementation of <see cref = "IEventBus" /> that uses Azure ServiceBus for distributing events 
    ///   to multiple subscribers.
    ///   First implementation wil drop them of on the Azure Queue / Blob Storage
    /// </summary>
    public class SimpleAzureServiceBus : IEventBus
    {
        
        
        /// <summary>
        ///   Publishes the event to the handlers.
        /// </summary>
        /// <param name = "eventMessage">The message to publish.</param>
        /// <exception cref = "ArgumentNullException">Thrown when <i>message</i> was null.</exception>
        /// <exception cref = "NoHandlerRegisteredForMessageException">Thrown when no handler was found for the specified message.</exception>
        public void Publish(IEvent eventMessage)
        {
            
        }
        /// <summary>
        ///   Publishes the messages to the handlers.
        /// </summary>
        /// <param name = "eventMessages"></param>
        /// <exception cref = "ArgumentNullException">Thrown when <i>messages</i> was null.</exception>
        /// <exception cref = "ArgumentNullException">Thrown when a instance in <i>messages</i> was null.</exception>
        /// <exception cref = "NoHandlerRegisteredForMessageException">Thrown when no handler was found for one of the specified messages.</exception>
        public void Publish(IEnumerable<IEvent> eventMessages)
        {
            throw new NotImplementedException();
        }
    }
}
